#include<stdio.h>
#include<stdlib.h>

// 队列的简单实现

typedef struct 
{
    int* base;  //动态分配的内存空间
    int tail;   // 尾指针
}SqQueue;

// 队列的初始化
SqQueue initQueue()
{
    int* basex=(int*) malloc(10*sizeof(int));
    SqQueue queue;
    queue.base=basex;
    for(int i=0;i<10;i++)
    {
        queue.base[i]=-1;
    }
    queue.tail=0;
    return queue;
}

// 队列的出队
int OutQueue(SqQueue* queue)
{
    int temp=-1;
    if(queue->base[0]!=-1)
    {
        temp=queue->base[0];
        for(int i=0;i<queue->tail-1;i++)
        {
            queue->base[i]=queue->base[i+1];
        }
        queue->tail--;
        queue->base[queue->tail]=-1;
    }
    return temp;
}
// 队列的入队
void joinQueue(SqQueue* queue,int data)
{
    queue->base[queue->tail++]=data;
}
//判断队列是否为空
int emptyQueue(SqQueue* queue)
{
    if(queue->tail==0)
    {
        return 1;
    }
    else
        return 0;
}
void main()
{
    SqQueue queue=initQueue();
    joinQueue(&queue,1);
    joinQueue(&queue,2);
    printf("%d\n",emptyQueue(&queue));
    joinQueue(&queue,3);
    printf("%d\n",OutQueue(&queue));
    printf("%d\n",OutQueue(&queue));
    printf("%d\n",OutQueue(&queue));
    printf("%d\n",emptyQueue(&queue));
}
